/**
 * 工具:phpStudy  navicat(数据哭管理工具)
 * 
 * 
 * mysql 的封装
 * 
 * 索引:原理二叉树查找，查找次数 log2N
 * 
 * 
 * 
 */

const mysql = require("mysql");



/**
 * 建立连接
 *  主机名 localhost
 *  端口   3306
 *  用户名  root 
 *  密码    root
 *  
 *  数据库名:
 */
/**
 * pool 连接池 ，mysqk 学好了再看
 * 
 */
/**
 * 配置
 */
let connection = mysql.createConnection({ host: 'localhost', user: 'root', password: 'root', port: '3306', database: 'test' });
/**
 * 具体建立连接
 */
//connection.connect();
/**
 * 操作 sql语句
 * query 关键词
 */
/**
 * 
 * select * (*所有字段) from 表名 (如还有条件 where );
 * 
 * 
 * 
 * 
 * callback(err,rows(数据))
 * 
 */
// connection.query('select * from demo where name="demo2"',function(err ,rows){
//     if(err){
//         console.log(err);
//     }else{
//         //console.log(rows);
//         //rows返回数组
//         //可循环取出
//         for(let row in rows){
//             console.log(rows[row].name);
//         }
//         console.log(rows[0]['name']);
//         console.log(rows[0].name);

//     }
// })

/**
 * 释放连接
 * 
 */
//  connection.end(function(err){
//      if(err){
//          console.log(err.message)
//      }
//  });


//后端人员的工作简单的说 就是curd (create update read delete)

/**
 * create 创建数据
 * 
 * 
 */


//   connection.connect();
//   /**
//    * 写入数据的sql intert into (表名)(字段) values  (值)
//    * INSERT into demo(name,age) values ('demo8',18)
//    */
//  for(let i=0;i<100000;i++){

//     let sql='INSERT into demo(name,age) values ("demo'+i+'",'+  Math.round(Math.random()*100)+')';
//     console.log(sql);

//     connection.query(sql,function(){
//         //console.log(arguments);
//     })

//  }
//  connection.end();
/**
 * 释放资源
 */



//封装数据库操作
function query(sql, callback) {
    connection.connect();
    /**
     * 写入数据的sql intert into (表名)(字段) values  (值)
     * INSERT into demo(name,age) values ('demo8',18)
     */
    connection.query(sql, function (err, result) {
        if (err) {
            console.log(err.message);
            return;
        }
        callback(result)
    })
    /**
     * 释放资源
     */
    connection.end();
}
let sql = 'select * from demo where name="demo15"';
query(sql, function (rows) {
    for (let row in rows) {
        console.log(rows[row].name)
    }
});

// promise 
// js promise 封装

let promiseQuery = function (sql) {
    return new Promise((resolve, reject) => {
        connection.connect();
        connection.query(sql, (err, result) => {
            if (err) {
                reject(err);
            } else {
                resolve(result);
            }
            connection.end();
        })
    });
}




/*
作业：回顾sql语句，建立一个表(表的sql也要提交),使用mysql模块实现增删改查(curd)

自己去玩一把索引
*/

















